package org.computate.model.dao;

import java.util.List;

import org.computate.model.item.Model;

import com.googlecode.objectify.Objectify;


public interface ComputateDao<T extends Model> {
	
	public abstract T create();
	public abstract T put(T item);
	public abstract T create(String name);
	public abstract T create(String name, String parentField, Long parentId, int GetLevels);
	public abstract T get(Long id, int getLevels);
	public abstract T get(String name, int getLevels);
	public abstract T delete(Long id);
	public abstract T delete(T item);
	public abstract List<T> list(int listLevels);
	public abstract T save(Object itemObject);
	public abstract Objectify ofy();
}
